/*
	Version   : 1.0
	Created   : 20090404
	Modified  :  --
	Author    : Pablo Ramírez
	co-Author :
	Descr     : Conjunto de funciones javascript
	Changelog :
*/

function validateCountry()
{ 
  var cou_codigo     = document.getElementById("CountryCouCodigo");
  var cou_nombre     = document.getElementById("CountryCouNombre");
   
  if (cou_codigo.value.length < 2)
  {
    alert('No ha ingresado correctamente un codigo de pais');
    cou_codigo.focus();
    return false;
  }
  
  if (cou_nombre.value.length < 3)
  {
    alert('No ha ingresado correctamente el nombre del pais');
    cou_nombre.focus();
    return false;
  }

return true;
}

function validateDepot()
{ 
  var dep_codigo     = document.getElementById("DepotDepCodigo");
  var dep_nombre     = document.getElementById("DepotDepNombre");
  var dep_direccion1 = document.getElementById("DepotDepDireccion1");
  var dep_telefono1  = document.getElementById("DepotDepTelefono1");
  
  
  if (dep_codigo.value.length < 3)
  {
    alert('No ha ingresado correctamente un codigo de deposito');
    dep_codigo.focus();
    return false;
  }
  
  //check nombre
  if (dep_nombre.value.length < 3)
  {
    alert('No ha ingresado correctamente un nombre de deposito');
    dep_nombre.focus();
    return false;
  }
  
  //check direccion
  if (dep_direccion1.value.length < 3)
  {
    alert('Debe ingresar al menos una direccion');
    dep_direccion1.focus();
    return false;
  }
  
  //check telefono
  if (dep_direccion1.value.length < 3)
  {
    alert('Debe ingresar al menos un telefono');
    dep_telefono1.focus();
    return false;
  }
  
  //check mail
  /*var atpos  = email.value.indexOf("@");    //indexOf find something in your JavaScript string
  var dotpos = email.value.indexOf(".");
  
  //alert('at: ' + atpos);
  
  if ( atpos < 1 || dotpos < 1 || email.value.length < 5) 
  {
    alert('Mmmm, this email ' + email.value + ' does not look as a valid email');
    email.focus();
    return false;
  }
  
  if ( age.selectedIndex == 0 )
  {
	     alert ("Sorry kid: you are too young.");
        return false;
  }
  
  if (agree.checked == false)
  {
    alert('You must sign the contract ;-) ');
    return false;
  } */

return true;
}

function validateOwner()
{ 
  var own_nombre      = document.getElementById("OwnerOwnNombre");
  var own_direccion1  = document.getElementById("OwnerOwnDireccion1");
  var own_telefono1   = document.getElementById("OwnerOwnTelefono1");
  
  if (own_nombre.value.length < 3)
  {
    alert('No ha ingresado correctamente el nombre del deposito');
    own_nombre.focus();
    return false;
  }
  
  if (own_direccion1.value.length < 3)
  {
    alert('No ha ingresado correctamente la direccion del deposito');
    own_direccion1.focus();
    return false;
  }

  if (own_telefono1.value.length < 3)
  {
    alert('No ha ingresado correctamente el telefono del deposito');
    own_telefono1.focus();
    return false;
  }
return true;
}

function validateContainerType() 
{
  var cot_codigo       = document.getElementById("ContainerTypeCotCodigo");
  var cot_descripcion  = document.getElementById("ContainerTypeCotDescripcion");
  var cot_reffer_flag  = document.getElementById("ContainerTypeCotRefferFlag");

  if (cot_codigo.value.length < 3)
  {
    alert('No ha ingresado correctamente el codigo de tipo de contenedor');
    cot_codigo.focus();
    return false;
  }

  if (cot_descripcion.value.length < 3)
  {
    alert('No ha ingresado correctamente la descripcion del tipo de contenedor');
    cot_descripcion.focus();
    return false;
  }
return true;
}

function validateServiceType()
{
  var set_codigo       = document.getElementById("ServiceTypeSetCodigo");
  var set_descripcion  = document.getElementById("ServiceTypeSetDescripcion");

  if (set_codigo.value.length < 3)
  {
    alert('No ha ingresado correctamente el codigo del tipo de servicio');
    set_codigo.focus();
    return false;
  }

  if (set_descripcion.value.length < 3)
  {
    alert('No ha ingresado correctamente la descripcion del tipo de servicio');
    set_descripcion.focus();
    return false;
  }
return true;	
}

function validateSurveyType()
{
  var sut_codigo       = document.getElementById("SurveyTypeSutCodigo");
  var sut_descripcion  = document.getElementById("SurveyTypeSutDescripcion");
  var sut_musthave     = document.getElementById("SurveyTypeSutMusthave");

  if (sut_codigo.value.length < 3)
  {
    alert('No ha ingresado correctamente el codigo del tipo de inspeccion');
    sut_codigo.focus();
    return false;
  }

  if (sut_descripcion.value.length < 3)
  {
    alert('No ha ingresado correctamente la descripcion del tipo de inspeccion');
    sut_descripcion.focus();
    return false;
  }

return true;	
}

function validateContainer()
{
	//alert('Validar Codigo de Container');
	var cod_codigo = document.getElementById("OrderContainerCodCodigo");
	if (cod_codigo==null) {
		//alert('Viene desde validar inspeccion');
		var cod_codigo = document.getElementById("ContainerCodCodigo");
		//alert(cod_codigo.value);
	}

	cod_codigo.value = cod_codigo.value.toUpperCase();
	
	//comparacion con expresiones regulares solo para validar el formato indicado en la primera parte del doc.
	//patron = /[ABCDEFGHIJKLMNOPQRSTUVWXYZ]{3}[UJZ]{1}[0-9]{6}[-]{1}[0-9]{1}/
	patron = /[ABCDEFGHIJKLMNOPQRSTUVWXYZ]{3}[UJZ]{1}[0-9]{7}/
	//alert ("resultado de la comparacion: " + cod_codigo.value.search(patron));
	// si es 0 es OK y si es -1 esta mal
	if (cod_codigo.value.search(patron) != 0){
		alert("El codigo del contenedor es invalido");
		cod_codigo.focus();
		return false;
	}
	
	//alert("resultado de la comparacion OK");
	// sacar este false para que continúe la funcion
	//return false;
	
	//alert(cod_codigo.value);
	var resultado = 0;
	var A = 10;
	var B = 12;
	var C = 13;
	var D = 14;
	var E = 15;
	var F = 16;
	var G = 17;
	var H = 18;
	var I = 19;
	var J = 20;
	var K = 21;
	var L = 23;
	var M = 24;
	var N = 25;
	var O = 26;
	var P = 27;
	var Q = 28;
	var R = 29;
	var S = 30;
	var T = 31;
	var U = 32;
	var V = 34;
	var W = 35;
	var X = 36;
	var Y = 37;
	var Z = 38;
	
/*
	for (var i=0; i <= cod_codigo.value.length-1; i++)
	{ 
		Char = cod_codigo.value.substr(i,1);
		if (i < 4) {
			//alert(Char);
			switch(Char) {
				case "A": 
					resultado += A;
					//alert('suma parcial: ' + resultado);
					break;
				case "B":
					resultado += B;
					//alert('suma parcial: ' + resultado);
					break;
				case "C":
					resultado += C;
					//alert('suma parcial: ' + resultado);
					break;
				case "D":
					resultado += D;
					//alert('suma parcial: ' + resultado);
					break;
				case "E":
					resultado += E;
					//alert('suma parcial: ' + resultado);
					break;
				case "F":
					resultado += F;
					//alert('suma parcial: ' + resultado);
					break;
				case "G":
					resultado += G;
					//alert('suma parcial: ' + resultado);
					break;
				case "H":
					resultado += H;
					//alert('suma parcial: ' + resultado);
					break;
				case "I":
					resultado += I;
					//alert('suma parcial: ' + resultado);
					break;
				case "J":
					resultado += J;
					//alert('suma parcial: ' + resultado);
					break;
				case "K":
					resultado += K;
					//alert('suma parcial: ' + resultado);
					break;
				case "L":
					resultado += L;
					//alert('suma parcial: ' + resultado);
					break;
				case "M":
					resultado += M;
					//alert('suma parcial: ' + resultado);
					break;
				case "N":
					resultado += N;
					//alert('suma parcial: ' + resultado);
					break;
				case "O":
					resultado += O;
					//alert('suma parcial: ' + resultado);
					break;
				case "P":
					resultado += P;
					//alert('suma parcial: ' + resultado);
					break;
				case "Q":
					resultado += Q;
					//alert('suma parcial: ' + resultado);
					break;
				case "R":
					resultado += R;
					//alert('suma parcial: ' + resultado);
					break;
				case "S":
					resultado += S;
					//alert('suma parcial: ' + resultado);
					break;
				case "T":
					resultado += T;
					//alert('suma parcial: ' + resultado);
					break;
				case "U":
					resultado += U;
					//alert('suma parcial: ' + resultado);
					break;
				case "V":
					resultado += V;
					//alert('suma parcial: ' + resultado);
					break;
				case "W":
					resultado += W;
					//alert('suma parcial: ' + resultado);
					break;
				case "X":
					resultado += X;
					//alert('suma parcial: ' + resultado);
					break;
				case "Z":
					resultado += Z;
					//alert('suma parcial: ' + resultado);
					break;
					
				default:
					//alert('suma parcial: ' + resultado);
					break;
			}
		}
		
		if (i >= 5) {
		resultado += parseInt(Char);
		//alert('suma parcial: ' + resultado);
		}
		//EDITAR QUE EL GUION DIVISOR DEL NUMERO CON EL DIGITO VERIFICADOR.
	}*/

	//alert('suma final: ' + resultado);
	
	//esto se podria sacar porque la validacion del formato lo hace arriba la expresion regular
	//if (cod_codigo.value.length != 12) --con guion
	if (cod_codigo.value.length != 11)
	  {
	    alert('No ha ingresado correctamente el codigo del contenedor');
	    cod_codigo.focus();
	    return false;
	  }
	
	return true;
}

function cleanInput() 
{
	var cod_codigo       = document.getElementById("OrderContainerCodCodigo");
	//alert('entre a limpiar cod_codigo');
	cod_codigo.value = '';
	//return true;
}

function validateSurvey(cod_codigo) 
{
	//alert('voy a validar el survey');
	//alert(cot_codigo);
	var con_mgw       = document.getElementById("ContainerConMgw");
	var con_tare      = document.getElementById("ContainerConTare");
	var con_manuf     = document.getElementById("ContainerConManuf");
	var con_onhdate   = document.getElementById("ContainerConOnhdate");
	
	var est_original  = document.getElementById("OrderEstimateEstOriginal");
	var est_final     = document.getElementById("OrderEstimateEstFinal");
	var est_saving    = document.getElementById("OrderEstimateEstSaving");
	var est_id        = document.getElementById("OrderEstimateEstId");
	var est_cl        = document.getElementById("OrderEstimateEstCl");
	var est_wt        = document.getElementById("OrderEstimateEstWt");
	var est_ir        = document.getElementById("OrderEstimateEstIr");
	var est_pti       = document.getElementById("OrderEstimateEstPti");
	var est_line      = document.getElementById("OrderEstimateEstLine");
	var est_client    = document.getElementById("OrderEstimateEstClient");
	var est_thirds    = document.getElementById("OrderEstimateEstThirds");
	//var est_class     = document.getElementById("OrderEstimateEstClass");
	
	var save_button   = document.getElementById("save_survey_button");
	
	//var td_cot_codigo    = document.getElementById("link_cot_codigo");

	//alert(td_cot_codigo.innerHTML);	
	//var cot_codigo = td_cot_codigo.innerHTML.substring(td_cot_codigo.innerHTML.indexOf("</a>") - 11, td_cot_codigo.innerHTML.indexOf("</a>"));
	
	var state_area       = document.getElementById(cod_codigo);
	/*if (validateContainer() == false) {
		return false;
	}*/
	
	// DEJAR finalEstimate CON DECIMALES YA QUE ESTA TRUNCANDO EL RESULTADO DE LA SUMA.
	//se comenta porque no se debe sumar class, thirds y client
	//finalEstimate = parseFloat(est_id.value) + parseFloat(est_cl.value) + parseFloat(est_wt.value) + parseFloat(est_ir.value) + parseFloat(est_pti.value) + parseFloat(est_line.value) + parseFloat(est_client.value) + parseFloat(est_thirds.value) + parseFloat(est_class.value);
	//se comenta nuevamente porque final_estimate=id + cl + wt + ir + pti 
	//finalEstimate = parseFloat(est_id.value) + parseFloat(est_cl.value) + parseFloat(est_wt.value) + parseFloat(est_ir.value) + parseFloat(est_pti.value) + parseFloat(est_line.value);
	finalEstimate = parseFloat(est_id.value) + parseFloat(est_cl.value) + parseFloat(est_wt.value) + parseFloat(est_ir.value) + parseFloat(est_pti.value);
	finalProrate = parseFloat(est_client.value) + parseFloat(est_thirds.value) + parseFloat(est_line.value);
	
	//alert(est_id.value);
	//alert(est_pti.value);
	//alert(finalEstimate);
	//alert(est_final.value);
	
	
	if (con_onhdate.value.length < 3)
	{
		alert('No ha ingresado correctamente Date Survey');
		con_onhdate.focus();
		return false;
	}
	
	if (con_mgw.value < 0)
	{
		alert('No ha ingresado correctamente MGW');
		con_mgw.focus();
		return false;
	}
	
	if (con_tare.value < 0)
	{
		alert('No ha ingresado correctamente TARE');
		con_tare.focus();
		return false;
	}

	if (con_manuf.value < 0)
	{
		alert('No ha ingresado correctamente MANUF');
		con_manuf.focus();
		return false;
	}
	
	if (est_original.value < 0)
	{
		alert('No ha ingresado correctamente Original Estimate');
		est_original.focus();
		return false;
	}	
	
	if (est_final.value < 0)
	{
		alert('No ha ingresado correctamente Final Estimate');
		est_final.focus();
		return false;
	}

	if (est_saving.value < 0)
	{
		alert('No ha ingresado correctamente Saving');
		est_saving.focus();
		return false;
	}		
	
	if (est_id.value < 0)
	{
		alert('No ha ingresado correctamente ID');
		est_id.focus();
		return false;
	}
	
	if (est_cl.value < 0)
	{
		alert('No ha ingresado correctamente CL');
		est_cl.focus();
		return false;
	}
	
	if (est_wt.value < 0)
	{
		alert('No ha ingresado correctamente WT');
		est_wt.focus();
		return false;
	}

	if (est_ir.value < 0)
	{
		alert('No ha ingresado correctamente IR');
		est_ir.focus();
		return false;
	}

	if (est_pti.value < 0)
	{
		alert('No ha ingresado correctamente PTI');
		est_pti.focus();
		return false;
	}
	
	if (est_line.value < 0)
	{
		alert('No ha ingresado correctamente LINE');
		est_line.focus();
		return false;
	}

	if (est_client.value < 0)
	{
		alert('No ha ingresado correctamente CLIENT');
		est_client.focus();
		return false;
	}

	if (est_thirds.value < 0)
	{
		alert('No ha ingresado correctamente THIRDS');
		est_thirds.focus();
		return false;
	}

	/*if (est_class.value < 0)
	{
		alert('No ha ingresado correctamente CLASS');
		est_class.focus();
		return false;
	}*/
	
	if (finalEstimate != est_final.value)
	{
		if (confirm('Final Estimate ' + finalEstimate + ' no coincide con el detalle de la inspeccion ' + est_final.value + ', ¿desea continuar?'))
		{
			state_area.style.background = "#7AC573";
			return true;
		} else {
			est_final.focus();
			return false;
		}
	}
	
	if (finalProrate != est_final.value)
	{
		if (confirm('Final Estimate ' + finalEstimate + ' no coincide con el detalle del prorrateo ' + finalProrate + ', ¿desea continuar?'))
		{
			state_area.style.background = "#7AC573";
			return true;
		} else {
			est_client.focus();
			return false;
		}
	}
	
	state_area.style.background = "#7AC573";
	
	return true;
}

function calculateSaving()
{
	//alert('calculando...');
	var est_saving    = document.getElementById("OrderEstimateEstSaving");
	var est_original  = document.getElementById("OrderEstimateEstOriginal");
	var est_final     = document.getElementById("OrderEstimateEstFinal");
	var disp_area     = 	document.getElementById("disp");
	var eOriginal = est_original.value;
	var eFinal    = est_final.value;
	
	//alert(eOriginal);
	//alert(eFinal);

	result = Math.round((eOriginal - eFinal)*Math.pow(10,3))/Math.pow(10,3);
	//alert(result);
	disp_area.innerHTML = '';
	est_saving.value = result;
	//button -- se podria habilitar aca
	
	return true;
}

function calculateEstimate()
{
	var est_final     = document.getElementById("OrderEstimateEstFinal");
	var est_id        = document.getElementById("OrderEstimateEstId");
	var est_cl        = document.getElementById("OrderEstimateEstCl");
	var est_wt        = document.getElementById("OrderEstimateEstWt");
	var est_ir        = document.getElementById("OrderEstimateEstIr");	
	var est_pti       = document.getElementById("OrderEstimateEstPti");		
	var est_line      = document.getElementById("OrderEstimateEstLine");		
	var est_client    = document.getElementById("OrderEstimateEstClient");
	var est_thirds    = document.getElementById("OrderEstimateEstThirds");	
	//var est_class     = document.getElementById("OrderEstimateEstClass");
	
	//se comenta porque final_estimate = id + cl + wt + ir + pti 
	//finalEstimate = parseFloat(est_id.value) + parseFloat(est_cl.value) + parseFloat(est_wt.value) + parseFloat(est_ir.value) + parseFloat(est_pti.value) + parseFloat(est_line.value);
	finalEstimate = parseFloat(est_id.value) + parseFloat(est_cl.value) + parseFloat(est_wt.value) + parseFloat(est_ir.value) + parseFloat(est_pti.value);
	est_final.value = Math.round(finalEstimate*Math.pow(10,2))/Math.pow(10,2);	
	calculateSaving();
	return true;
}

function validateNumber(elEvento)
{
	//alert('checkear numero valido...');
	var validos = "0123456789";
	var teclas_especiales_validas = [8, 9, 37, 39, 46];
	// 8 = BackSpace, 9 = Tab, 46 = Supr, 37 = flecha izquierda, 39 = flecha derecha
	
	// para saber que tecla se apreto
	var evento = elEvento || window.event;
	var codigoCaracter = evento.charCode || evento.keyCode;
	var caracter = String.fromCharCode(codigoCaracter);

	// Comprobar si la tecla apretada es alguna de las teclas especiales
	var tecla_especial = false;
	for(var i in teclas_especiales_validas) {
		if(codigoCaracter == teclas_especiales_validas[i]) {
			tecla_especial = true;
			break;
		}
	}
	// Comprobacion final tecla pulsada es permitida o es una especial
	return validos.indexOf(caracter) != -1 || tecla_especial;
}

function refreshContainerList(idOrder,idDepot)
{
	//alert('Refrescando header combo para ' +idOrder+' y '+idDepot);
	var on_survey_header = document.getElementById("on_survey_header");
	new Ajax.Updater('on_survey_header', '/inspecciones/orders/orderContainerList/'+idOrder+'/'+idDepot, { method: 'get' });
}

